#ifndef SELFINFOWIDGET_H
#define SELFINFOWIDGET_H

#include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QString>
#include <QPushButton>
#include "model/data.h"
#include <QGridLayout>
#include <QStackedWidget>
#include <QWidget>

class SelfInfoWidget : public QDialog
{
    Q_OBJECT
public:
    explicit SelfInfoWidget(QWidget* parent = nullptr);
    void initSingalSlot();
    // 安全更新布局的方法
    void updateLayoutSafely();

    void clickNameSubmitBtn();
    void clickNameSubmitBtnDone();
    void clickDescSubmitBtn();
    void chickDescSubmitBtnDone();

    void clickGetVerifyCodeBtn(); // 验证码获取

    void clickPhoneSubmitBtn();
    void clickPhoneSubmitBtnDone();

    void clickAvatarBtn();
    void clickAvatarBtnDone();

private:
    QWidget* centralWidget;
    QGridLayout* layout;        // 布局管理器
    QStackedWidget* nameStack;
    QStackedWidget* nameBtnStack;
    QStackedWidget* descStack;
    QStackedWidget* descBtnStack;
    QStackedWidget* phoneStack;
    QStackedWidget* phoneBtnStack;
    QStackedWidget* verifyStack;


    // 头像
    QPushButton* avatarBtn;

    // 序号
    QLabel* idTag;              // 序号
    QLabel* idLabel;            // 显示具体序号

    // 名字
    QLabel* nameTag;            // 昵称
    QLabel* nameLabel;          // 显示具体昵称
    QLineEdit* nameEdit;        // 编辑昵称
    QPushButton* nameModifyBtn; // 修改名字
    QPushButton* nameSubmitBtn; // 提交修改

    // 签名
    QLabel* descTag;            // 显示 "签名"
    QLabel* descLabel;          // 显示 签名内容
    QLineEdit* descEdit;        // 编辑签名
    QPushButton* descModifyBtn; // 修改签名
    QPushButton* descSubmitBtn; // 提交签名

    // 电话
    QLabel* phoneTag;               // 电话
    QLabel* phoneLabel;             // 显示具体电话号码
    QLineEdit* phoneEdit;           // 编辑电话
    QPushButton* phoneModifyBtn;    // 修改电话
    QPushButton* phoneSubmitBtn;    // 提交电话
    QString phoneToChange;          // 记录即将修改的新的手机号, 确保发送验证码手机号和最终修改手机号相同

    // 验证码
    QLabel* verifyCodeTag;          // 验证码
    QLineEdit* verifyCodeEdit;      // 输入验证码
    QPushButton* getVerifyCodeBtn;  // 获取验证码

    int leftTime = 0;           // 控制发送验证码按钮倒计时
};




// class SelfInfoWidget : public QDialog
// {
//     Q_OBJECT

// public:
//     explicit SelfInfoWidget(QWidget *parent = nullptr);

// private slots:
//     void initSingalSlot();

// private:
//     QGridLayout* layout;
//     void updateLayoutSafely();

//     void clickNameSubmitBtn();
//     void clickNameSubmitBtnDone();
//     void clickDescSubmitBtn();
//     void chickDescSubmitBtnDone();

//     void clickGetVerifyCodeBtn(); // 验证码获取

//     void clickPhoneSubmitBtn();
//     void clickPhoneSubmitBtnDone();

//     void clickAvatarBtn();
//     void clickAvatarBtnDone();

//     // 头像
//     QPushButton* avatarBtn;

//     // id (只读)
//     QLabel* idTag;
//     QLabel* idLabel;

//     // 昵称
//     QLabel* nameTag;
//     QStackedWidget* nameStack; // 包含 nameLabel 和 nameEdit
//     QLabel* nameLabel;
//     QLineEdit* nameEdit;
//     QStackedWidget* nameBtnStack;
//     QPushButton* nameModifyBtn;
//     QPushButton* nameSubmitBtn;

//     // 签名
//     QLabel* descTag;
//     QStackedWidget* descStack; // 包含 descLabel 和 descEdit
//     QLabel* descLabel;
//     QLineEdit* descEdit;
//     QStackedWidget* descBtnStack;
//     QPushButton* descModifyBtn;
//     QPushButton* descSubmitBtn;

//     // 电话
//     QLabel* phoneTag;
//     QStackedWidget* phoneStack; // 包含 phoneLabel 和 phoneEdit
//     QLabel* phoneLabel;
//     QLineEdit* phoneEdit;
//     QStackedWidget* phoneBtnStack;
//     QPushButton* phoneModifyBtn;
//     QPushButton* phoneSubmitBtn;

//     // 验证码
//     QStackedWidget* verifyStack; // 包含 verifyCodeTag 和一个空 widget
//     QLabel* verifyCodeTag;
//     QLineEdit* verifyCodeEdit;
//     QPushButton* getVerifyCodeBtn;
// };

#endif // SELFINFOWIDGET_H































